package com.huaixia.cozeapi.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author biliyu
 * @date 2024/6/25 14:47
 */
@NoArgsConstructor
@Data
public class SubmitChatDTO {

    /**
     * 要进行会话聊天的 Bot ID。
     * 进入 Bot 的 开发页面，开发页面 URL 中 bot 参数后的数字就是 Bot ID。例如https://www.coze.cn/space/73428668/bot/123123
     * bot ID 为 123123
     * 说明：确保该 Bot 的所属空间已经生成了访问令牌。
     */
    private String botId;

    /**
     * 标识对话发生在哪一次会话中，使用方自行维护此字段。
     * 对于不需要区分 conversation 的场合（仅是一问一答），可不传该参数，系统自动生成。
     */
    private String conversationId;

    /**
     * 标识当前与 Bot 交互的用户，使用方自行维护此字段。
     */
    private String user;

    /**
     * 发送给 Bot 的消息内容。
     */
    private String query;

    /**
     * 作为上下文传递的聊天历史记录。
     * 当你要使用chat_history 参数在对话中添加聊天记录作为下文参考时请注意：
     * chat_history 是一个列表，其中包含 API 返回的用户请求和对话数据，详情请参考返回参数内容中 Message 消息结构的具体说明。
     * 整个列表按时间升序排序。 也就是说，上一个对话的最新消息出现在列表的末尾。
     * （可选）将 API 返回的中间结果通过聊天记录传回 API，并按索引升序放入chat_history中。
     */
    private List<Object> chatHistory;

    /**
     * Bot 中定义的变量。在 Bot prompt中设置好变量{{key}}后，可以通过改参数传入变量值。
     */
    private Object customVariables;

}
